/*
 * ============================================================================
 * Copyright Notice!
 * ----------------------------------------------------------------------------
 * This file contains proprietary and confidential information belonging to the
 * group of people involvled in developing this project.  Reproduction, disclosure 
 * or use without specific written authorization from project stake holders is 
 * prohibited. Please refer the readme.txt in project installation folder for more
 * specific contacts
 *
 * All rights reserved.
 * ============================================================================
 */
package edu.uwm.universitydb.service.professor;

import java.util.List;

import edu.uwm.universitydb.framework.exception.DataAccessException;
import edu.uwm.universitydb.model.Professor;

/**
 * <code>ProfessorService</type>
 * 
 * @author Shyam Nair
 */
public interface ProfessorService
{
    /**
     * <code>addProfessor(...)</code> adds a professor to the data base.
     * 
     * @param professor
     * @return
     */
    boolean addProfessor(Professor professor) throws DataAccessException;

    /**
     * <code>removeProfessor(...)</code> removes a professor from database
     * 
     * @param professor
     * @return
     */
    boolean removeProfessor(final String profSSN);

    /**
     * <code>searchProfessorByName(...)</code> search professor by Name
     * 
     * @param name
     * @return a list of professors with matching name
     *         sorted by name
     */
    
    /**
     * <code>updateProfessor(...)</code>
     * contract to update a professor to DB
     * 
     * @param student
     * @return
     */
    boolean updateProfessor(Professor professor) throws DataAccessException;
    
    List<Professor> searchProfessorByName(String name);

    /**
     * <code>searchProfessorByName(...)</code> return all professors in DB
     * 
     * @return all the professors in db sorted by SSN
     */
    List<Professor> getAllProfessors();

    /**
     * <code>searchProfessorBySSN(...)</code> search for professor by ssn
     * 
     * @param name
     * @return
     */
    Professor searchProfessorBySSN(String name);
}
/*
 * ============================================================================
 * Change History
 * ----------------------------------------------------------------------------
 * Apr 19, 2014   Shyam Nair
 * File created
 * ----------------------------------------------------------------------------
 */